cairo_surface_get_device_scale (window_surface, &sx, &sy);
#endif
- width = width * sx;
- height = height * sy;
-
switch (_gdk_rendering_mode)
{
case GDK_RENDERING_MODE_RECORDING:
{
- cairo_rectangle_t rect = { 0, 0, width, height };
+ cairo_rectangle_t rect = { 0, 0, width * sx, height *sy };
surface = cairo_recording_surface_create (content, &rect);
+#ifdef HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE
+ cairo_surface_set_device_scale (surface, sx, sy);
+#endif
}
break;
case GDK_RENDERING_MODE_IMAGE:
surface = cairo_image_surface_create (content == CAIRO_CONTENT_COLOR ? CAIRO_FORMAT_RGB24 :
content == CAIRO_CONTENT_ALPHA ? CAIRO_FORMAT_A8 : CAIRO_FORMAT_ARGB32,
- width, height);
+ width * sx, height * sy);
+#ifdef HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE
+ cairo_surface_set_device_scale (surface, sx, sy);
+#endif
break;
case GDK_RENDERING_MODE_SIMILAR:
default:
break;
}
-#ifdef HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE
- cairo_surface_set_device_scale (surface, sx, sy);
-#endif
cairo_surface_destroy (window_surface);
if (target)
{
-#ifdef HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE
- cairo_surface_get_device_scale (target, &sx, &sy);
-#else
- sx = sy = 1;
-#endif
-
result = cairo_surface_create_similar (target,
CAIRO_CONTENT_COLOR_ALPHA,
- surface_width*sx,
- surface_height*sy);
-
-#ifdef HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE
- cairo_surface_set_device_scale (result, sx, sy);
-#endif
+ surface_width,
+ surface_height);
}
else
result = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,